package kuonjisai;

public class J25_Inheritance {

	
	// 클래스 확장하기
	// OOP에서 상속은 매우 중요핮한 기능임
	// 상속을 이용해서 기존코드를 확장시켜
	// 클래스를 만들 수 있음
	
	// 기존 클래스를 확장시켜
	// 새로운 클래스늘 맞만드는 경우;
	// 원래 클래스틑 base라 하고
	// 
	// 새로운 클래스를 마친자 식*( sub  클래스라함
	
		
	// 기본 클래스를 확장하는 행위는 크게 2가지
	// 기본 클래에 없는 새로운 멤버, 메서드를
	// 기본 클래스에 이미 있는 메설드 ,, 메서드를 추가하거나
	// 기본 클래스에 이미ㅣ 있는 메서드르 무시하고
	// 클래서 확자이 extends 라는 애앾어 사용
	
	// Fish is Animal, Tiget is Aniaml , Bug is Animal

	
	//  한편, 기본 클래스를확지,ㅇ하여 
	// 새로운 클래스를 확장하는 경우
	// 형성되는 특수한 관계는 is - a 임
	/// 예를 들어 animal 이라는 클래스는
	// f// Fishi, Tige, Buc 등의 부모 클래스임
	
	
	// 새롭게 메서드를 재작성함
	// 매서드 재정의override
	// 클래스 확장시, 부모 클래스의
	// 메서드 동작을 자식 클래스에서 변경할 수 있음
	// 단, final을 선언된 메서드는 재정의 불가
	
	
	public static void main(String[] args) {
	J24_ParentClass pc = new J24_ParentClass();
	pc.showMeTheMoney();
	J24_ChildClass cc = new J24_ChildClass();
	cc.showMeTheMoney();
	
	J25_Fish f = new J25_Fish();
	f.eat();
	
	}

}
